Assessing and managing computational risk involved with integrating third party computing functionality within a computing system

ABSTRACT

In general, various aspects of the present disclosure provide methods, apparatuses, systems, computing devices, computing entities, and/or the like for addressing a modified risk rating identifying a risk to an entity of having computer-implemented functionality provided by a vendor integrated with a computing system of the entity. In accordance various aspects, a method is provided that comprises: receiving a first assessment dataset for computer-implemented functionality; detecting an inconsistency between a value of an attribute for the computer-implemented functionality specified in the first assessment dataset and a corresponding value of the attribute specified in a second assessment dataset for the computer-implemented functionality; modifying a risk rating that identifies a risk to the entity of having the computer-implemented functionality integrated with the computing system to generate a modified risk rating based on the inconsistency; and in response, performing an action with respect to the computing system to address the modified risk rating.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 17/722,551, filed Apr. 18, 2022, which claims the benefit of U.S. Provisional Patent Application Ser. No. 63/176,185, filed Apr. 16, 2021, which is hereby incorporated herein by reference in its entirety.

TECHNICAL FIELD

The present disclosure is generally related to data processing systems and methods for assisting entities in a manner to ensure proper access control, usage control, and protection of data involved with computer-implemented functionality provided by a vendor from maliciously caused destruction, unauthorized modification, or unauthorized disclosure.

BACKGROUND

Significant technical challenges are often encountered by entities (e.g., organizations, companies, institutes, and/or the like) with respect to integrating computing systems of the entities with computer-implemented functionality (e.g., services, software applications, computing system capacity, and/or the like) provided by independent third party entities, also referred to as vendors. For example, a particular entity may use a computing system in supporting an e-commerce website. Here, the entity may integrate computer-implemented functionality in the form of a service with the computing system that is provided through a vendor to validate the identity of visitors to a website. Visitors to the website may provide identifying information that the computing system submits to the integrated service to validate the visitors' identities. For example, the service may be provided in a software-as-a-service environment. Therefore, the integration of the service in the computing system may involve installing an application programming interface (API) within the computing system to provide access to the service over a network such as the Internet.

However, an entity's integration of the service with its computing system can expose the computing system to significant risk. For example, installing the API within the computing system can provide a channel for a nefarious third-party to gain access to the computing system through the vendor's service. Such access can expose the computing system to experiencing a data breach, being hacked, having malware (e.g., a virus and/or ransomware) installed within the computing system, and/or the like. Therefore, any entity that is onboarding computer-implemented functionality provided through a vendor with a computing system of the entity must be able to recognize, manage, and mitigate risks associated with such integration in an effective manner to ensure integrity of the computing system is maintained. Accordingly, a need exists in the art for improved systems and methods to facilitate and assist an entity in successfully recognizing, managing, and mitigating risks associated with integrating computing systems of the entity with computer-implemented functionality (e.g., services, software applications, computing system capacity, and/or the like) provided by vendors.

SUMMARY

In general, various aspects of the present disclosure provide methods, apparatuses, systems, computing devices, computing entities, and/or the like. In accordance various aspects, a method is provided that comprises: providing, by computing hardware, a first question from a set of questions found in an electronic assessment for display on a user interface, wherein the user interface solicits a first answer to the first question, and the set of questions relates to computer-implemented functionality provided by a vendor; receiving, by the computing hardware and via the user interface, the first answer to the first question to provide a first question/answer pairing; mapping, by the computing hardware, the first question/answer pairing to an attribute related to the computing-implemented functionality; mapping, by the computing hardware, the attribute to a second question/answer pairing, wherein the second question/answer pairing: is related to the attribute, comprises a second question of the set of questions, and comprises a second answer provided to the second question; comparing, by the computing hardware, the first answer to the second answer to identify an inconsistency in the first answer with respect to the second answer; determining, by the computing hardware, to address the inconsistency; and responsive to determining to address the inconsistency, performing, by the computing hardware, an action to address the inconsistency, wherein the action comprises at least one of: (1) prompting, via the user interface, to provide at least one of supporting information or supporting documentation to address the inconsistency, (2) providing, via the user interface, a follow up question related to the inconsistency, or (3) requesting, via the user interface, the inconsistency in the first answer to be redressed.

In some aspects, determining to address the inconsistency comprises processing the inconsistency via a decision engine to generate a relevance of the inconsistency, the decision engine comprising a rules-based model configured to use a set of rules in determining a level of the inconsistency as a measure of the relevance of the inconsistency. In some aspects, the method further comprises determining, by the computing hardware, the action to perform by: processing at least one of the first question/answer pairing or the second question/answer pairing using a machine-learning model to generate a data representation having a set of predictions in which each prediction is associated with a particular action to take to address the inconsistency; and selecting, based on the set of predictions, the action to address the inconsistency. In some aspects, the machine-learning model is trained using training data derived from responses to follow up requests previously provided for inconsistencies detected in past assessment question/answer pairings that comprises at least one of (1) whether the inconsistencies detected in the past assessment question/answer pairings were ignored, (2) whether related follow up actions for the inconsistencies detected in the past assessment question/answer pairings were ignored, (3) particular types of actions taken in response to the inconsistencies detected in the past assessment question/answer pairings, or (4) at least one of a framework or standard that is mapped to the past assessment question/answer pairings.

In some aspects, mapping the first question/answer pairing to the attribute related to the computing-implemented functionality and mapping the attribute to the second question/answer pairing is performed via a data structure that maps the first question/answer pairing and the second question/answer pairing to the attribute. In some aspects, the first answer and the second answer are in a freeform text format and comparing the first answer to the second answer to identify the inconsistency in the first answer with respect to the second answer involves: performing a natural language processing technique on the first answer to generate a first embedded representation of the first answer, performing the natural language processing technique on the second answer to generate a second embedded representation of the second answer, and comprising the first embedded representation to the second embedded representation to identify the inconsistency. In some aspects, the method further comprises determining, by the computing hardware, the action to take to address the inconsistency based on at least one of a type of the attribute or a past response to a past inconsistency related to the attribute.

In accordance with various aspects, a system is provided comprising a non-transitory computer-readable medium storing instructions and a processing device communicatively coupled to the non-transitory computer-readable medium. In particular aspects, the processing device is configured to execute the instructions and thereby perform operations comprising: providing a first question found in an electronic assessment for display on a user interface, wherein the user interface solicits a first answer to the first question, and the first question relates to computer-implemented functionality; receiving, via the user interface, the first answer to the first question to provide a first question/answer pairing; mapping the first question/answer pairing to a plurality of attributes related to the computing-implemented functionality; mapping the plurality of attributes to a second question/answer pairing, wherein the second question/answer pairing comprises a second question, and a second answer provided to the second question; comparing the first answer to the second answer to identify an inconsistency in the first answer with respect to the second answer; determining to address the inconsistency; and responsive to determining to address the inconsistency, performing an action to address the inconsistency, wherein the action comprises at least one of: (1) prompting, via the user interface, to provide at least one of supporting information or supporting documentation to address the inconsistency, (2) providing, via the user interface, a follow up question related to the inconsistency, or (3) requesting, via the user interface, the inconsistency in the first answer to be redressed.

In some aspects, determining to address the inconsistency comprises processing the inconsistency using a rules-based model configured to use a set of rules in determining a level of the inconsistency as a measure of a relevance of the inconsistency. In some aspects, the operations further comprise determining the action to perform by: processing at least one of the first question/answer pairing or the second question/answer pairing using a machine-learning model to generate a data representation having a set of predictions in which each prediction is associated with a particular action to take to address the inconsistency; and selecting, based on the set of predictions, the action to address the inconsistency. In some aspects, the machine-learning model is trained using training data derived from responses to follow up requests previously provided for inconsistencies detected in past assessment question/answer pairings that comprises at least one of (1) whether the inconsistencies detected in the past assessment question/answer pairings were ignored, (2) whether related follow up actions for the inconsistencies detected in the past assessment question/answer pairings were ignored, (3) particular types of actions taken in response to the inconsistencies detected in the past assessment question/answer pairings, or (4) at least one of a framework or standard that is mapped to the past assessment question/answer pairings.

In some aspects, mapping the first question/answer pairing to the plurality of attributes related to the computing-implemented functionality and mapping the plurality of attributes to the second question/answer pairing is performed via a data structure that maps the first question/answer pairing and the second question/answer pairing to the plurality of attributes. In some aspects, the first answer and the second answer are in a freeform text format and comparing the first answer to the second answer to identify the inconsistency in the first answer with respect to the second answer involves: performing a natural language processing technique on the first answer to generate a first embedded representation of the first answer, performing the natural language processing technique on the second answer to generate a second embedded representation of the second answer, and comprising the first embedded representation to the second embedded representation to identify the inconsistency. In some aspects, the operations further comprise determining the action to take to address the inconsistency based on at least one of (1) a number of the plurality of attributes, (2) a type of each of the plurality of attributes, or (3) one or more past responses to at least one of the first question/answer pairing being flagged or similar question/answering pairings being flagged that are mapped to attributes similar to the plurality of attributes.

In addition, in accordance with various aspects, a non-transitory computer-readable medium having program code stored thereon is provided. In particular aspects, the program code is executable by one or more processing devices to perform operations comprising: providing a first question found in an electronic assessment for display on a user interface, wherein the user interface solicits a first answer to the first question, and the first question relates to computer-implemented functionality; receiving, via the user interface, the first answer to the first question to provide a first question/answer pairing; mapping the first question/answer pairing to an attribute related to the computing-implemented functionality; mapping the attribute to a second question/answer pairing, wherein the second question/answer pairing comprises a second question, and a second answer provided to the second question; comparing the first answer to the second answer to identify an inconsistency in the first answer with respect to the second answer;

determining to address the inconsistency; and responsive to determining to address the inconsistency, performing an action to address the inconsistency, wherein the action comprises at least one of: (1) prompting, via the user interface, to provide at least one of supporting information or supporting documentation to address the inconsistency, (2) providing, via the user interface, a follow up question related to the inconsistency, or (3) requesting, via the user interface, the inconsistency in the first answer to be redressed.

In some aspects, determining to address the inconsistency comprises processing the inconsistency using a rules-based model configured to use a set of rules in determining a level of the inconsistency as a measure of a relevance of the inconsistency. In some aspects, the operations further comprise determining the action to perform by: processing at least one of the first question/answer pairing or the second question/answer pairing using a machine-learning model to generate a data representation having a set of predictions in which each prediction is associated with a particular action to take to address the inconsistency; and selecting, based on the set of predictions, the action to address the inconsistency.

In some aspects, mapping the first question/answer pairing to the attribute related to the computing-implemented functionality and mapping the attribute to the second question/answer pairing is performed via a data structure that maps the first question/answer pairing and the second question/answer pairing to the attribute. In some aspects, the first answer and the second answer are in a freeform text format and comparing the first answer to the second answer to identify the inconsistency in the first answer with respect to the second answer involves: performing a natural language processing technique on the first answer to generate a first embedded representation of the first answer, performing the natural language processing technique on the second answer to generate a second embedded representation of the second answer, and comprising the first embedded representation to the second embedded representation to identify the inconsistency. In some aspects, the operations further comprise determining the action to take to address the inconsistency based on at least one of a type of the attribute or a past response to a past inconsistency related to the attribute.

BRIEF DESCRIPTION OF THE DRAWINGS

In the course of this description, reference will be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:

FIG. 1 depicts an example of a computing environment that can be used for recognizing, managing, and mitigating risks associated with an entity integrating computer-implemented functionality provided by vendors with computing systems of the entity in accordance with various aspects of the present disclosure;

FIG. 2 depicts an example of a process for modifying a risk rating for a vendor in accordance with various aspects of the present disclosure;

FIGS. 3A-3D depict an example of a mapping of assessment questions to standards, controls, and/or frameworks that can be used in accordance with various aspects of the present disclosure;

FIG. 4 depicts an example of a process for generating a dynamic assessment completed by a vendor in accordance with various aspects of the present disclosure;

FIG. 5 depicts an example of a process for placing vendors in tiers in accordance with various aspects of the present disclosure;

FIG. 6 depicts an example of a process for processing vendors for various tiers in accordance with various aspects of the present disclosure;

FIG. 7 depicts an example of a process for generating a customized risk rating of a vendor for an entity in accordance with various aspects of the present disclosure;

FIG. 8 depicts an example of a listing of assessment questions related to an entity's use of a particular vendor that can be used in accordance with various aspects of the present disclosure;

FIG. 9 depicts an example of a process for modifying a risk rating of a vendor for an entity in accordance with various aspects of the present disclosure;

FIG. 10 provides an example of a graphical user interface that can be used in accordance with various aspects of the present disclosure;

FIG. 11 depicts an example of a system architecture that may be used in accordance with various aspects of the present disclosure; and

FIG. 12 depicts an example of a computing entity that may be used in accordance with various aspects of the present disclosure.

DETAILED DESCRIPTION Overview

As noted above, significant technical challenges are often encountered by entities (e.g., organizations, companies, institutes, and/or the like) with respect to integrating computing systems of the entities with computer-implemented functionality (e.g., services, software applications, computing system capacity, and/or the like) provided by independent third party entities, also referred to as vendors. For example, integrating computer-implemented functionality provided through a vendor with a computing system of an entity can introduce the computing system to vulnerabilities such as experiencing a data breach, being compromised by having malware installed on the computing system, losing functionality due to a hacker breaking into the computing system and taking control, and/or the like.

As a specific example, an entity may subscribe to computer-implemented functionality in the form of a service (e.g., software-as-a-service) for providing human resource management functionality. Here, the service may be integrated with a computing system of the entity to provide the entity with human resource management functionality within the computing system. The service may need to gain access to personal data of employees stored within the computing system (e.g., data repository thereof) in performing certain functionality. Therefore, the service may need to have credentials to gain access to the personal data. The service may store such credentials in a cloud computing environment that is used in supporting the service. In addition, the computing system and service may communicate over a network such as the Internet. Accordingly, the integration of the service with the computing system may involve installing an application programming interface (API) within the computing system to facilitate communication between the cloud computing environment supporting the service and the computing system.

However, the cloud computing environment supporting the service is normally under the control of the vendor. Therefore, the entity does not generally have any say as to how the vendor goes about storing the credentials in the cloud environment such as, for example, the security controls that are put into place by the vendor in ensuring the credentials are properly protected from being involved in a data-related incident such as a data breach. As a result, the entity's use of the service can expose the computing system of the entity to significant risk if the vendor is handling the credentials in a poorly secure manner. For example, the vendor may experience a data-related incident involving the cloud computing environment in which the credentials are stolen. This can happen without the vendor's knowledge. The third-party who has stolen the credentials may then be able to use the credentials to gain access to the computing system of the entity. Therefore, any entity that is interested in integrating computer-implemented functionality provided by vendors within a computing system of the entity must be able to successfully recognize, manage, and mitigate risks associated with such integrations.

To combat this problem, many entities will perform an assessment of a vendor when considering integrating computer-implemented functionality provided by the vendor with a computing system of the entity. For example, an entity may have the vendor complete a questionnaire that includes questions on various attributes of the computer-implemented functionality that may influence an amount of risk that may be involved in using the functionality. The entity may then evaluate the vendor's answers to the questions to determine a risk (e.g., risk rating) associated with integrating the computer-implemented functionality with the entity's computing system.

However, a first drawback of performing such an assessment is that the entity's assessment may be lacking in some area that may not necessarily identify a particular risk (and/or level thereof) that is associated with the entity's integration of the vendor's computer-implemented functionality. For example, the questionnaire provided to the vendor may not include the proper questions to identify the particular risk. In addition, the vendor may not always be accurate and/or truthful in answering the questions provided in the questionnaire.

In addition, a second drawback of performing such an assessment is that the assessment may only be performed at a time when the vendor is being considered for providing the computer-implemented functionality, or performed only occasionally once the vendor has been onboarded and the vendor's computer-implemented functionality has been integrated with the entity's computing system. Therefore, any changes instituted by the vendor that may affect the risk (and/or level thereof) associated with providing the computer-implemented functionality may not be recognized and/or appreciated by the entity. For example, the vendor may change the identity verification process used for controlling access to a data repository used in storing credentials used by the vendor in accessing the entity's computing system. As a result, the entity's computing system may be exposed to a risk and/or an increased level of risk due to the change in the identity verification process that the entity is unaware of and/or does not fully appreciate.

Various aspects of the present disclosure overcome many of the technical challenges associated with integrating computing systems of an entity with computer-implemented functionality (e.g., services, software applications, computing system capacity, and/or the like) provided by vendors, such as those discussed above. Specifically, various aspects of the disclosure are directed to a computer-implemented process that facilitates and assists an entity in successfully recognizing, managing, and mitigating risks associated with integrating computing systems of the entity with computer-implemented functionality (e.g., services, software applications, computing system capacity, and/or the like) provided by vendors. In various aspects, a vendor risk management computing system is used in executing the computer-implemented process.

In some aspects, the vendor risk management computing system receives a first assessment dataset for computer-implemented functionality provided by a vendor that is to be integrated with a computing system of an entity. For example, the first assessment dataset may involve question/answer pairings. As a specific example, the entity, or some other entity, may provide the vendor with a questionnaire that includes questions on the computer-implemented functionality. Personnel for the vendor may then provide answers to the questions which in turn become the question/answer pairings found in the first assessment dataset.

The vendor risk management computing system may access a second assessment dataset for the computer-implemented functionality from a data repository that stores risk assessment data on a plurality of computer-implemented functionality provided by different vendors. In various aspects, the data repository serves as a centralized data source for storing assessment datasets collected on various computer-implemented functionality provided by different vendors. For example, the different assessment datasets may be collected through multiple questionnaires that have been provided to the vendors during times when entities are evaluating the vendors with respect to integrating the various computer-implemented functionality with computing systems of the entities.

As a specific example, a first entity may be evaluating a vendor with respect to integrating computer-implemented functionality that involves a service provided by the entity with a computing system of the first entity. For example, integrating the computer-implemented functionality with the computing system may involve installing an application programming interface (API) in the computing system to call the service.

Here, the first entity may provide the vendor with a questionnaire that includes questions on the vendor's computer-implemented functionality. For example, the questionnaire may include one or more questions on the access controls that the vendor has put in place for accessing the service. In addition, the questionnaire may include one or more questions on security controls that the vendor has put into place with respect to sensitive data that the service may use that is collected through the first entity's computing system. In turn, personnel for the vendor may then complete the questionnaire by providing answers to the questions. Multiple personnel may complete the questionnaire so that the first entity may receive multiple sets of answers to the questions that results in multiple assessment datasets. The first entity may then submit the assessment datasets to be stored in the data repository.

Besides the first entity, other entities that are evaluating the vendor with respect to integrating the computer-implemented functionality with computing systems for the entities may do the same in submitting assessment datasets to store in the data repository. Therefore, the data repository can be viewed as a crowdsourcing resource in that the data repository can store assessment datasets that have been collected by multiple entities in evaluating the vendor and corresponding computer-implemented functionality. Accordingly, the data repository can be used in storing assessment datasets for other computer-implemented functionality provided by the vendor, as well as computer-implemented functionality provided by other vendors. Therefore, the data repository can serve as a centralized data source for assessment datasets collected by various entities in evaluating different vendors and different computer-implemented functionality provided by the different vendors.

In various aspects, the vendor risk management computing system detects an inconsistency between a value of an attribute for the computer-implemented functionality that is specified in the first assessment dataset and a corresponding value of the attribute that is specified in the second assessment dataset. For example, the attribute may involve a particular process, control, procedure, function, and/or the like that the vendor has implemented in providing the computer-implemented functionality to various entities. Here, the vendor risk management computing system may detect a different value has been provided for the attribute in the first assessment dataset and the second assessment dataset.

In some aspects, the vendor risk management computing system may identify the value for the attribute based on a mapping of a first question/answer pairing provided in the first assessment dataset. For example, the first question/answer pairing can include a first question provided in a first questionnaire filled out by the vendor and a first answer provided by the vendor to the first question where the value is the first answer. Likewise, the vendor risk management computing system may identify the corresponding value for the attribute based on a mapping of a second question/answer pairing provided in the second assessment dataset. For example, the second question/answer pairing can include a second question provided in a second questionnaire filled out by the vendor and a second answer provided by the vendor to the second question where the value is the second answer.

In some aspects, the vendor risk management computing system modifies a risk rating for the vendor to generate a modified risk rating for the vendor based on the inconsistency. For example, the modified risk rating identifies a risk to the entity of having the computer-implemented functionality integrated with the computing system. Therefore, the entity can use the modified risk rating in determining whether to use the vendor in providing the computer-implemented functionality to integrate with the entity's computing system. In some instances, the vendor risk management computing system may identify the inconsistency and generate the modified risk rating after the entity has already onboarded the vendor and has already integrated the computer-implemented functionality with the computing system. Therefore, the vendor risk management computing system may assist the entity in identifying a change in risk in using the computer-implemented functionality provided by the vendor after the entity has already started using the computer-implemented functionality. Furthermore, the vendor risk management computing system may identify the inconsistency and generate the modified risk rating for the entity based on assessment datasets that did not originate from the entity. Therefore, the vendor risk management computing system may provide the entity with the benefit of recognizing a change in risk in using the computer-implemented functionality based on other entities evaluation of the computer-implemented functionality.

The entity may have multiple computer-implemented functionality provided by various vendors with one or more computing systems of the entity. In some aspects, the vendor risk management computing system may assist the entity in identifying, monitoring, managing, and/or the like the risk related to using of the multiple computer-implement functionality by placing vendors into different risk tiers based on the risk rating assigned to the vendors. For example, the risk tiers may include “Low,” “Medium,” “High,” and “Very High.” The risk tiers can allow personnel for the entity to quickly recognize the risk involved in using computer-implemented functionality for various vendors.

Accordingly, the modified risk rating can move the vendor from a first risk tier for the entity to a second risk tier for the entity. As a result, the vendor risk management computing system may cause performance of one or more actions with respect to the computing system of the entity to address the modified risk rating. For example, the one or more actions may involve sending an electronic notification, such as an email, to personnel of the entity that identifies the inconsistency and the attribute for the computer-implemented functionality. Similarly, the one or more actions may involve sending, in addition or instead, an electronic notification to personnel of the vendor that identifies the inconsistency and the attribute for the computer-implemented functionality. In another example, the one or more actions may involve directly affecting the use of the computer-implemented functionality within the computing system such as causing the computer-implemented functionality to be disabled in the computing system (e.g., disabling the API from calling the service). In some aspects, the one or more actions are defined for the risk tier for the entity. Therefore, the vendor risk management computing system may cause the one or more actions to be performed based on the vendor being moved from a first risk tier to a second risk tier.

As noted, the data repository can serve as a centralized resource for various assessment datasets collected by different entities on different computer-implemented functionality provided by different vendors. Therefore, the vendor risk management computing system may assist multiple entities with identifying, monitoring, managing, and/or the like risk related to the use of multiple computer-implement functionality from different vendors. For example, the computer-implemented functionality being used by the first entity may also be integrated with a second computing system of a second entity that is different from the entity. Accordingly, the modified risk rating may also identify a risk to the second entity of having the computer-implemented functionality integrated with the second computing system and again, the modified risk rating may move the vendor from a first risk tier for the second entity to a second risk tier for the second entity. Therefore, like the first entity, the vendor risk management computing system may cause performance of one or more actions with respect to the second computing system of the second entity to address the modified risk rating.

In some aspects, the vendor risk management computing system may allow for each entity to generate a customized risk rating for a particular vendor if desired. For example, the vendor risk management computing system may provide the first and second entities with a questionnaire that includes questions on each entity's specific integration of computer-implemented functionality with the first and second computing systems. Accordingly, the customized risk rating can be fine-tuned to the entity's particular use of computer-implemented functionality provided by a vendor. Therefore, the vendor risk management computing system may also modify a second risk rating that is unique to the second entity, in addition to the risk rating that is unique to the first entity, to generate a second modified risk rating for the vendor based on the inconsistency that is unique for the second entity.

Accordingly, various aspects of the disclosure provided herein are effective, efficient, reliable, and accurate in assisting various entities with identifying, monitoring, managing, and/or the like risk associated with integrating computer-implemented functionality provided by different vendors with computing systems of the entities. In addition, various aspects of the disclosure provided herein facilitate a centralized resource on assessment datasets provided through various entities that are collected with respect to integrating computer-implemented functionality provided by vendors with computing systems of the entities. This can be a significant advantage in that the centralized resource can serve as a crowdsourcing data source that can allow for an entity to obtain a risk rating for a vendor that may be better representative of the risk of integrating computer-implemented functionality provided by the vendor with a computing system of the entity. Thus, various aspects of the present disclosure make major technical contributions to improving the computational efficiency, security, and reliability of various computing systems in using computer-implemented functionality provided through various vendors. Further detail is now provided for various aspects of the disclosure.

Example Computing Environment

FIG. 1 depicts an example of a computing environment that can assist entities in identifying, monitoring, managing, and/or the like risk associated with integrating computer-implemented functionality provided by different vendors with computing systems of the entities in accordance with various aspects of the present disclosure. Accordingly, FIG. 1 depicts examples of hardware components of a vendor risk management computing system 100 according to some aspects. The vendor risk management computing system 100 is a specialized computing system that can be used for performing risk analysis related to the integration of computer-implemented functionality provided through various vendor computing systems 195 to various entity computing systems 190 of entities. In addition, the vendor risk management computing system 100 can assist entities in identifying, monitoring, managing, and/or the like risk associated with the entities integrating computer-implemented functionality with the various entity computing systems 190.

In various aspects, the vendor risk management computing system 100 may be configured to host a vendor risk management service (e.g., software as a service) used by the different entities that is accessible over one or more networks 175. Here, the vendor risk management computing system 100 includes software components and/or hardware components for facilitating the vendor risk management service. For example, the vendor risk management computing system 100 may be hosting the vendor risk management service as one or more microservices within the vendor risk management computing system 100. The vendor risk management computing system 100 may provide access to the vendor risk management service over the one or more networks 175 (e.g., the Internet) to an entity (e.g., an entity computing system 190 associated with the entity) that has subscribed to the service and is considered a “tenant” of the vendor risk management computing system 100. Personnel of the entity may access the vendor risk management service over the one or more networks 175 through one or more graphical user interfaces (e.g., webpages) 180 and use the vendor risk management service. In addition to the graphical user interfaces 180, the vendor risk management computing system 100 may include one or more interfaces (e.g., application programming interfaces (APIs)) and/or components for communicating and/or accessing the entity computing systems 190 and/or vendor computing systems 195 over the network(s) 175.

Here, an entity computing system 190 for an entity may include computing hardware and/or software that may involve the integration of various computer-implemented functionality provided through a vendor computing system 195. For example, the entity computing system 190 may integrate computer-implemented functionality provided through the vendor computing system 195 by installing an API within the entity computing system 190 that is used to communicate with a service provided through the vendor computing system 195. In another example, the entity computing system 190 may integrate computer-implemented functionality provide through the vendor computing system 195 by utilizing data storage found within the vendor computing system 195.

Accordingly, the vendor computing system 195 is operated by a vendor other than the particular entity. Thus, the vendor computing system 195 generally includes computing hardware and software that the particular entity has no control over or access to, but which provides the computer-implemented functionality that is integrated with the entity computing system 190 for the particular entity. Therefore, the entity computing system 190 can be exposed to risk introduced by integrating the computer-implemented functionality provided through the vendor computing system 195.

For example, the entity computing system 190 may be exposed to risk of experiencing a data-related incident such as a data breach as a result of integrating the computer-implemented functionality provided through the vendor computing system 195. Therefore, the entity may be interested in using the vendor risk management service in performing a risk analysis on integrating the computer-implemented functionality provided through the vendor computing system 195 with the entity computing system 190. In addition, the entity may be interested in using the vendor risk management service in monitoring and managing the risk involved with using the computer-implemented functionality once the computer-implemented functionality has been integrated with the entity computing system 190.

In various aspects, the vendor risk management computing system 100 includes a data repository 170 that can be used as a centralized resource for assessment datasets gathered on computer-implemented functionality provided by different vendors. For example, the data repository 170 may comprise one or more databases used in storing the assessment datasets. In addition, the data repository 170 may be used in storing other data utilized within the vendor risk management computing system such as questionnaires that may be completed by vendors on the different computer-implemented functionality they may provide, as well as questionnaires that may be completed by entities on different computer-implemented functionality provided by vendors that the entities have (or plan to) integrate with entity computing systems 190.

In various aspects, the vendor risk management computing system 100 can receive the assessment datasets from entities (e.g., entity computing systems 190) and/or vendors (e.g., vendor computing system 195). Accordingly, the vendor risk management computing system 100 can use the assessment datasets in performing certain functionality associated with evaluating risk associated with the integration of computer-implemented functionality provided by the vendors with entity computing systems 195, as well as assist entities in identifying, monitoring, and managing the risk.

The vendor risk management computing system 100 may include computing hardware performing a number of different processes in providing functionality associated with the vendor risk management service. Specifically, in various aspects, the vendor risk management computing system 100 executes: (1) a modification module 110 to modify a risk rating for a vendor based on an inconsistency detected between assessment datasets; (2) a dynamic assessment module 120 to generate a dynamic assessment completed by a vendor; (3) a tier module 130 to place vendors in tiers; (4) a risk mitigation module 140 to process vendors for various tiers; (5) a custom module 150 to generate a customized risk rating of a vendor for an entity; and/or (6) a custom modification module 160 to modify a risk rating of a vendor for an entity. Further detail is provided below regarding the configuration and functionality of the modification module 110, the dynamic assessment module 120, the tier module 130, the risk mitigation module 140, the custom module 150, and the custom modification module 160 according to various aspects of the disclosure.

Modification Module

Turning now to FIG. 2 , additional details are provided regarding a modification module 110 for modifying a risk rating for a vendor based on an inconsistency detected between assessment datasets in accordance with various aspects of the disclosure. For instance, the flow diagram shown in FIG. 2 may correspond to operations carried out, for example, by computing hardware found in the vendor risk management computing system 100 as described herein, as the computing hardware executes the modification module 110.

As previously noted, a vendor may receive risk assessments from various entities that may be interested in integrating computer-implemented functionality provided by the vendor with entity computing systems 190 for the entities. For example, the risk assessments may be in the form of a questionnaire that asks the vendor certain questions with respect to the computer-implemented functionality. The risk assessments are generally used in evaluating the risk of integrating the computer-implemented functionality with the entity computing systems 190. For example, a questionnaire may ask the vendor to indication whether the vendor is using certain access controls such as two-factor authentication for the computer-implemented functionality. Accordingly, the use or lack of use of the access controls can indicate to an entity a level (e.g., amount) of risk that is involved with integrating the computer-implemented functionality with an entity computing system 190.

Therefore, the vendor risk management computing system 100 may receive and store completed risk assessments in the form of assessment datasets for the particular vendor from different entities, as well as different sources within the particular vendor (e.g., from personnel in different departments within the particular vendor, from different personnel within the same department within the particular vendor, from different subsidiaries of the particular vendor, etc.). In turn, the assessment datasets may be stored in a data repository 170 within the vendor risk management computing system 100 as previously discussed. Therefore, the data repository 170 can serve as a centralized resource of assessment datasets that may have been collected by a number of different entities to facilitate crowdsourcing of assessments on the vendor.

In various aspects, each of the assessment datasets may include respective answers (e.g., values) to each question within the completed risk assessment to form question/answer pairings. In some aspects, each question/answer pairing may correspond to one or more attributes associated with the particular computer-implemented functionality being provided by the vendor. Therefore, the assessment datasets collected on the particular computer-implemented functionality can be compared to identify whether the vendor has provided consistent information in the assessments. If not, then a risk rating for the vendor may be modified to reflect the inconsistency. For example, such a comparison may be performed when a new completed assessment dataset is uploaded to the vendor risk management computing system 100 by an entity or the vendor for the particular computer-implemented functionality.

Accordingly, the process 200 involves the modification module 110 receiving the newly completed assessment dataset at Operation 210. At Operation 215, the modification module 110 parses the newly completed assessment dataset into question/answer pairings. For example, the newly completed assessment dataset may be based on a questionnaire provided as an electronic form. The electronic form may have been viewed by personnel for the vendor on a computing device. The electronic form may have presented the personnel with questions along with fields to provide answers to the questions. Therefore, the modification module 110 parses the questions and corresponding answers provided in the electronic form into the question/answer pairings.

At Operation 220, the modification module 110 maps the question/answer pairings to attributes for the computer-implemented functionality. In some aspects, the modification module 110 may access a data structure that provides a mapping of the question/answer pairings to the attributes. For example, the attributes may be particular controls that are to be implemented by the vendor for the computer-implemented functionality according to one or more standards and/or frameworks (e.g., FFIEC Cat Tool, PCI 3.2, FFIEC IT Mgmt Handbook, NIST SP 800-53, NIST Cybersecurity Framework, HIPPA Simplification, EU GDPR, SOC 1, SOC 2, etc.). In some aspects, multiple questions within the assessment may map to a same control associated with the one or more standards and/or frameworks.

Turning briefly to FIGS. 3A-3D, an example of a mapping 300 is provided of particular question/answer pairings to one or more standards and/or frameworks (e.g., in addition to particular controls related to each of the standards and frameworks). As may be understood from FIGS. 3A-3D, the mapping 300 may correspond to one or more fields in a data structure that indicates a particular question/answer pairing and a mapping of each particular question/answer pairing to one or more attributes (e.g., controls) as defined by various standards/frameworks.

Once the modification module 110 has mapped each of the question/answer pairings, the modification module 110 retrieves one or more assessment datasets for the vendor that are related to the computer-implemented functionality at Operation 225. For example, the modification module 110 may query the one or more assessment datasets from the data repository 170 used within the vendor risk management computing system 100 for storing the assessment datasets. Here, the modification module 110 may retrieve one or more assessment datasets that are associated with a particular entity (e.g., the entity that has provided the completed assessment dataset) or multiple entities. For example, personnel for the entity that has provided the completed assessment dataset may also provide criteria along with the assessment dataset for querying the one or more assessment datasets to use in detecting inconsistencies in the newly completed assessment dataset.

At Operation 230, the modification module 110 selects one of the retrieved assessment datasets. The modification module 110 then maps the attributes for the question/answer pairings to the attributes found in the selected assessment dataset in Operation 235. Again, the modification module 110 may use some type of data structure that provides a mapping of the values provided in the selected assessment dataset to attributes. Once mapped, the modification module 110 determines whether any inconsistencies are found in the question/answer pairings for the newly completed assessment dataset by comparing the answers (e.g. values) provided for the question/answer pairings to the values provided for the matching attributes found in the selected assessment dataset at Operation 240.

In various aspects, the modification module 110 detects inconsistencies in question/answer pairings based on detecting conflicting values from the newly completed assessment dataset and the selected assessment dataset that relate to the same particular attribute. For example, the modification module 110 may detect inconsistencies that include (1) opposing binary (e.g., yes/no) values for a particular attribute that are specified in the newly completed assessment dataset and the select assessment dataset; (2) inconsistent response values for a particular attribute between the newly completed assessment dataset and the select assessment dataset (e.g., such as when the responses specified in the newly completed assessment dataset and the select assessment dataset to the same multiple-choice question are different); (3) inconsistent selection values for a particular attribute between the newly completed assessment dataset and the select assessment dataset (e.g., such as when the responses specified in the newly completed assessment dataset and the select assessment dataset to the same question requesting the assessment taker to select all responses that apply are inconsistent); (4) inconsistent point values for a particular attribute between the newly completed assessment dataset and the select assessment dataset (e.g., such as when a question corresponding to the particular attribute calls for a point value response); and/or (5) any other suitable inconsistency between the value of any attribute for the particular vendor that is specified in the newly completed assessment dataset and the corresponding value for the attribute for the particular vendor that is specified in the selected assessment dataset (e.g., different numeric responses, different text responses, responses in the selected assessment dataset for which there is no corresponding response in the newly completed assessment dataset as a result of a blank response, etc.). If the modification module 110 identifies any inconsistencies, then the modification module records the inconsistencies in Operation 245. This can allow for personnel of the entity that has provided the newly completed assessment dataset, personnel for another entity, and/or the vendor to review the inconsistencies.

The modification module 110 then determines whether another assessment dataset has been retrieved to compare with the newly completed assessment dataset in Operation 250. If so, then the modification module 110 returns to Operation 230, selects the next assessment dataset, and performs a comparison using the newly selected assessment dataset to identify any inconsistencies between the newly completed assessment dataset and the newly selected assessment dataset.

Once the modification module 110 has conducted a comparison of the newly completed assessment dataset to the retrieved assessment datasets, the modification module 110 modifies a risk rating for the vendor to generate a modified risk rating based on any inconsistences that have been identified for the newly completed assessment dataset in Operation 255. Accordingly, the risk rating can be in the form of a score, a level, a grade, and/or the like. In some aspects, the modification module 110 may modify a predefined risk rating (e.g., baseline risk rating) for the particular vendor in generating the modified risk rating. In other aspects, the modification module 110 may modify a prior generated risk rating for the particular vendor (e.g., which the system may have determined based on a single assessment, or any other suitable factor).

In various aspects, the modification module 110 may use a rules-based model in modifying the risk rating to generate the modified risk rating. Accordingly, the rules-based model may use a set of rules that defines how to modify the risk rating based on various factors involved in the identified inconsistencies. For example, the set of rules may provide rules for modifying the risk rating based on the attribute or type of attribute related to an inconsistency. The set of rules may provide rules for modifying the risk rating based on the type of inconsistency. The set of rules may provide rules for modifying the risk rating based on the level and/or severity of an inconsistency (e.g., the numerical values provided for a particular attribute being a certain amount apart). Different sets of rules may be defined for different computer-implemented functionality, different types of computer-implemented functionality, different vendors, different types of vendors, different entity computing systems for which the computer-implemented functionality is to be integrated with, and/or the like.

In various aspects, the modification module 110 modifies the risk rating to generate the modified risk rating by, for example: (1) increasing the risk rating based on the one or more identified inconsistencies; (2) decreasing the risk rating based on the one or more identified inconsistencies; (3) applying one or more multipliers to the risk rating based on the one or more identified inconsistencies; and/or (4) applying any other suitable modification to the risk rating for the particular vendor. In some aspects, the modification module 110 may modify an overall risk rating (e.g., crowdsourcing risk rating) for the vendor in response to detecting the one or more inconsistencies. In other aspects, the modification module 110 may modify a risk rating associated with particular computer-implemented functionality for the vendor and/or a particular attribute of the functionality associated with an identified inconsistency. In particular aspects, the modification module 110 may also output the modified risk rating by displaying the modified risk rating on a graphical user interface, storing the modified risk rating, sending an electronic communication such as an email with the modified risk rating to personnel of an entity, the vendor, and/or the like. The modification module 110 may also include information on the inconsistencies that resulted in the modified risk rating in the output.

Dynamic Assessment Module

Turning now to FIG. 4 , additional details are provided regarding a dynamic assessment module 120 for generating a dynamic assessment completed by a vendor (e.g., personnel thereof) in accordance with various aspects of the disclosure. For instance, the flow diagram shown in FIG. 4 may correspond to operations carried out, for example, by computing hardware found in the vendor risk management computing system 100 or a vendor computing system 195 as described herein, as the computing hardware executes the dynamic assessment module 120.

For example, the dynamic assessment module 120 may provide the assessment in the form of one or more graphical user interfaces that present questions to personnel of the vendor who then provide answers to the questions via the graphical user interfaces. Here, the personnel may have accessed the vendor risk management service to complete the assessment and therefore, the dynamic assessment module 120 is executing on the vendor risk management computing system 100. In other instances, the dynamic assessment module 120 may have been sent to the vendor along with a particular assessment for the vendor to complete. Therefore, the personnel for the vendor may be executing the dynamic assessment module 120 on a vendor computing system 195 associated with the vendor. Accordingly, as the personnel provides answers to the questions presented for the assessment, the dynamic assessment module 120 detects inconsistencies in the assessment in real time and in response, flags one or more responses related to the inconsistencies for additional action.

Therefore, the process 400 involves the dynamic assessment module 120 displaying a question to the personnel in Operation 410. The personnel then enters an answer to the question. The answer to the question can be provided in various formats depending on the types of response requested for the question. For example, the question may be the form of a yes/no question, multiple choice question, freeform question, and/or the like. In addition, the question may request additional information to be provided (e.g., uploaded) along with the answer such as supporting documentation, documentation on certifications, documentation on past data-related incidents, and/or the like.

The dynamic assessment module 120 receives the answer to the question in Operation 415 and maps the question/answer pairing to one or more attributes in Operation 420. For example, the dynamic assessment module 120 may use some type of data structure that maps the question/answer pairing to one or more attributes related to computer-implemented functionality provided by the vendor. In addition, the dynamic assessment module 120 maps the one or more attributes to other question/answer pairings found in the assessment that are related to the one or more attributes in Operation 425.

In various aspects, the assessment can include multiple question/answer pairings that are related to any particular attribute. For example, the assessment may include a first question asking the personnel whether the vendor has implemented an encryption process for encrypting data that is transferred from an entity (e.g., transferred from an entity computing system 190) to the vendor (e.g., to a vendor computing system 195) to be used in a service provided by the vendor. The assessment may also include a second, different question asking the personnel whether the vendor has put any controls in place for ensuring secure data transfers. Therefore, both the first and second question/answer pairings touch on the same attribute as to whether the vendor encrypts data that is transfer from an entity to the vendor. Accordingly, the assessment is configured in this manner to require the personnel to provides multiple answers related to the same attribute to ensure the personnel is providing complete, consistent, and accurate answers (information) related to the attribute.

Therefore, in Operation 430, the dynamic assessment module 120 compares the answers for the question/answer pairings related to the one or more attributes. The dynamic assessment module 120 may perform this particular operation using various functionality depending on the form of the answers. For example, the answers may be a freeform text format. Therefore, the dynamic assessment module 120 can use one or more natural language processing techniques to compare the answers of the question/answer pairings.

For example, the dynamic assessment module 120 may compare a first answer string from a first question/answer pairing with a second answer string from a second question/answer pairing by first utilizing the natural language processing techniques to generate embedded vector representations (e.g., tokenized representations) of the first answer string and the second answer string. The dynamic assessment module 120 can then compare the embedded vector representations for the first and second answer strings to identify whether the first answer string contains an inconsistency.

In other instances, the answers may be in a structured format such as selected answers for multiple choice question, answer to a yes or no question, a numerical answer to a quantity question, and/or the like. Therefore, the dynamic assessment module 120 may compare the answers to the question/answer pairings to determine whether the answers match in identifying whether the answer to the question that was presented to the personnel contains an inconsistency.

At Operation 435, the dynamic assessment module 120 determines whether the answer to the question contains an inconsistency. If so, then the dynamic assessment module 120 determines whether to address the inconsistency in Operation 440. In various aspects, the dynamic assessment module 120 performs this particular operation by using a decision engine to determine a relevance of a particular identified inconsistency. In some aspects, the decision engine may entail a rules-based model that uses a set of rules in determining whether the inconsistency should be addressed. For example, the set of rules may include rules that apply to the level (degree) of inconsistency in determining whether the inconsistency should be address. As a specific example, the set of rules may include a rule that if the inconsistency involves numerically different answers that satisfy a threshold, then the inconsistency should be addressed. In addition, the set of rules may include rules that apply to certain attributes and/or certain types of attributes.

If the dynamic assessment module 120 determines the inconsistency should be addressed, then the dynamic assessment module 120 addresses the inconsistency in Operation 445. Accordingly, the dynamic assessment module 120 may determine one or more actions to take to address the inconsistency based on, for example: (1) a number of attributes that are mapped to the particular question/answer pairing; (2) a type of each of the one or more attributes that are mapped to the particular question/answer pairing; (3) one or more past responses by users to the question/answer paring being flagged or similar question/answer pairings being flagged (e.g., one or more past responses to a question/answer pairing with similar mapped attributes as the particular question/answer pairing); and/or (4) any other suitable factors. Accordingly, the dynamic assessment module may identify one or more actions such as, for example: (1) prompting the personnel to provide supporting information and/or documentation to address the inconsistency; (2) providing the personnel with a follow up question related to the inconsistency; (3) requesting the personnel to readdress the particular question/answer pairing involved in the inconsistency; and/or (4) taking any other suitable action related to the inconsistency (e.g., provide an indication that the inconsistency is acceptable, ignore the flagged response, etc.).

In some aspects, the dynamic assessment module 120 may use a machine-learning model to determine the one or more actions to take to address the inconsistency. For example, the machine-learning model may be a trained model such as a multi-label classification model that processes the particular question/answer pairing and/or the related question/answer pairings and generates a data representation having a set of predictions (e.g., values) in which each prediction is associated with a particular action to take to address the inconsistency. The machine-learning model may be trained, for example, using training data derived from users' responses to follow up requests previously provided for inconsistencies detected in one or more assessment question/answer pairings such as: (1) whether the user ignored the flagged question or related follow up action; (2) a particular type of action the user took in response to the flagged question and/or related follow up action (e.g., providing support for the response, implementing a remediating action, modifying one or more attributes, etc.); (3) one or more frameworks and/or standards that are mapped to the flagged question; and/or (4) any other suitable information.

At this point, the dynamic assessment module 120 determines whether the assessment includes another question to ask the personnel in Operation 450. If so, then the dynamic assessment module 120 returns to Operation 410, selects the next question, and performs the operations just discussed for the newly selected question. Once the dynamic assessment module 120 has processed all of the questions for the assessment, the dynamic assessment module 120 records the assessment in Operation 455. For example, the dynamic assessment module 120 may record the assessment by submitting the assessment as a newly completed assessment dataset to the vendor risk management computing system 100.

Tier Module

Turning now to FIG. 5 , additional details are provided regarding a tier module 130 for placing vendors in tiers in accordance with various aspects of the disclosure. For instance, the flow diagram shown in FIG. 5 may correspond to operations carried out, for example, by computing hardware found in the vendor risk management computing system 100 as described herein, as the computing hardware executes the tier module 130.

As previously noted, an entity may be using the vendor risk management service in evaluating, identifying, monitoring, and managing risk associated with the entity integrating computer-implemented functionality provided by a variety of vendors. In some instances, the entity may be utilizing computer-implemented functionality provided by a large number of vendors. Therefore, the entity may wish to utilize the vendor risk management service in a manner that can allow personnel for the entity to quickly assess which vendors pose risks that the entity should be concerned with and/or should address.

Accordingly, the vendor risk management computing system 100 in various aspects is configured to place the vendors associated with a particular entity into risk tiers that can allow personnel for the entity to quick identify groups of vendors that are associated with a particular level of risk (e.g., risk rating). For example, the personnel for the entity may be viewing information on various vendors provided through the vendor risk management service. Here, the personal may be viewing a graphical user interface through the vendor risk management service that displays a listing of vendors with their respective risk ratings.

However, the personnel may be interested in identifying those vendors that the entity may be using for various computer-implemented functionality and/or may be planning to use for various computer-implemented functionality that have been identified as having a certain level of risk. Therefore, the personnel may select an option provided on the graphical user interface to place the interested vendors for the personnel into risk tiers so that the personnel can quickly identify those vendors associated with the certain level of risk. As a result of selecting the option, the tier module 130 may be executed to place the vendors into the appropriate tiers.

Therefore, the process 500 involves the tier module 130 receiving a list of vendors in Operation 510. For example, the personnel may have provided criteria for identifying the vendors of interest to have placed in the different tiers. As a specific example, the personnel may have identified all of the vendors that the entity is actively using to provide computer-implemented functionality that is integrated into entity computing systems 190 for the entity.

In Operation 515, the tier module 130 selects one of the vendors from the list of vendors. The tier module 130 then retrieves one or more risk ratings that have been generated and stored for the vendor in Operation 520. For example, the tier module 130 may retrieve: a risk rating for the vendor that has been specifically developed for the particular entity; may in addition, or instead, retrieve a risk rating for the vendor that has been developed for other entities (e.g., a baseline risk rating and/or a crowdsourcing risk rating); may in addition, or instead, retrieve a risk rating for the vendor that has been specifically developed for particular computer-implemented functionality; and/or the like.

The graphical user interface may allow the personnel to provide criteria used by the tier module 130 in retrieving the one or more risk ratings for the vendor. Accordingly, such functionality can allow for the personnel to fine tune what risk ratings are used in placing the vendors into the different risk tiers.

Once the tier module 130 has retrieved the one or more risk ratings, the tier module 130 places the vendor into a particular risk tier based on the risk rating(s) in Operation 525. For example, the risk tiers may include “Low,” “Medium,” “High,” and “Very High” and the risk ratings may be provided as scores ranging from 1-100. The tier module 130 may generate a composite risk score for the risk scores by, for example, averaging the risk scores, taking the median of the risk scores, and/or the like. The tier module 130 may then place the vendor into one of the risk tiers based on the vendor having a particular composite risk score. For example, the tier module 130 may place the vendor with a composite risk score ranging from 1 to 25 into the “Low” tier, a composite risk score ranging from 26-50 into the “Medium” tier, a composite risk score ranging from 51-75 into the “High” tier, or a composite risk score ranging from 76-100 into the “Very High” tier.

The tier module 130 then determines whether another vendor needs to be placed in one of the risk tiers in Operation 530. If so, then the tier module 130 returns to Operation 515, selects the next vendor, and places the next vendor into the appropriate risk tier as just discussed. Once the tier module 130 has placed all of the vendors into an appropriate risk tier, the tier module 130 may perform one or more actions related to the different risk tiers in Operation 535. For example, the tier module 130 may display the different risk tiers and their associated vendors to the personnel. In another example, the tier module 130 may send an electronic communication such as an email, text message, and/or the like to the personnel and/or some other personnel of the entity providing the vendors that have been placed in the different risk tiers or a particular risk tier of interest.

The tiering of vendors can be advantageous to the personnel of the entity, such as a privacy officer, because it may allow the personnel to quickly determine a general risk level associated with a group of vendors. This can be especially advantageous when the group of vendors includes a large number of vendors (e.g., 1000 or more). The personnel may then use the risk tiering to determine whether, and how, to further assess the risk associated with certain vendors. For example, the personnel may determine to take no action in regard to vendors that have been placed in the “Low” tier, have a third party conduct risk assessments for vendors placed in the “Medium” tier, and have vendors that have been placed in the “High” or “Very High” tiers complete risk impact assessments.

Risk Mitigation Module

Turning now to FIG. 6 , additional details are provided regarding a risk mitigation module 140 for processing vendors for various risk tiers in accordance with various aspects of the disclosure. For instance, the flow diagram shown in FIG. 6 may correspond to operations carried out, for example, by computing hardware found in the vendor risk management computing system 100 as described herein, as the computing hardware executes the risk mitigation module 140.

An entity may employ the vendor risk management service to perform certain actions for vendors that have been placed in a particular risk tier. For example, the entity may wish to have risk impact assessments automatically generated and sent to vendors that have been placed in the “Very High” tier. In another example, the entity may wish to have actions performed in instances where a vendor's risk rating changes and causes the vendor to be moved from a first risk tier to a second, different risk tier.

As a specific example, an entity may currently have computer-implemented functionality provided by a first vendor integrated with an entity computing system 190 of the entity. The first vendor's risk rating may currently place the vendor into the “Medium” tier for the entity. However, the first vendor may implement a change that affects an attribute for the first vendor that causes the first vendor's risk rating to increase with respect to the entity's integration of the computer-implemented functionality. As a result, the increased risk rating may move the first vendor from the “Medium” tier to the “Very High” tier. Here, the entity may wish to have one or more actions performed as a result of the first vendor being moved from the “Medium” tier to the “Ver High” tier.

For example, the entity may wish to have one or more electronic notifications sent to personnel of the entity to notify them of the change in risk the entity is now experiencing in integrating computer-implemented functionality. In other instances, the entity may wish to have more direct actions taken in addition, or instead, to mitigate an increase in risk due to the first vendor moving from the “Medium” tier to the “Very High” tier such as, for example, having the integration of computer-implemented functionality with the entity computing system 190 (temporarily) disabled until the increase in risk can be addressed by the entity and/or the first vendor.

In various aspects, the vendor risk management computing system 100 may provide entities with functionality to define actions that are to be performed for vendors that have been placed into certain risk tiers. For example, the vendor risk management computing system 100 may provide one or more graphical user interfaces through the vendor risk management service that allows for personnel of entities to define actions to be performed for vendors placed into certain risk tiers. In addition, the one or more graphical user interfaces may allow for the personnel to provide information needed by the vendor risk management computing system 100 to perform the actions such as, for example, email addresses of personnel to receive electronic communications, credentials needed to access entity computing systems 190, and/or the like.

Accordingly, the risk mitigation module 140 may be invoked by personnel of an entity to have one or more actions performed for vendors placed into a certain risk tier. For example, the personnel may have a group of vendors placed into the different risk tiers as previously discussed. The personnel may then decide to have one or more actions performed for vendors placed in a particular risk tier such as the “Very High” tier. In other instances, the vendor risk management computing system 100 may automatically invoke the risk mitigation module 140. For example, personnel of an entity may set up to have the vendor risk management computing system 100 invoke the risk mitigation module 140 for a particular risk tier periodically and/or when a vendor's risk rating has changed and moves the vendor into a particular risk tier. In those instances, the vendor risk management computing system 100 may invoke the risk mitigation module 140 for the particular vendor and not necessarily for every vendor that has placed into the particular risk tier.

The process 600 involves the risk mitigation module 140 selecting the particular risk tier in Operation 610. Here, the risk mitigation module 140 may select the particular risk tier by querying the vendors that have been placed in the particular risk tier for the entity. For example, personnel for the entity may have previously had a group of vendors placed into the different risk tiers as previously discussed and the tiering of the group of vendors may have been stored in a data repository 170 found in the vendor risk management computing system 100 or other computing system such as an entity computing system 190 for the entity. Therefore, the risk mitigation module 140 may query the vendors that have been placed in the particular risk tier from the data repository 170.

In some aspects, the risk mitigation module 140 may use criteria in querying the vendors for the particular risk tier. For example, the risk mitigation module 140 may use criteria that indicates to only query those vendors that have been newly placed in the particular risk tier, which have a risk rating that has recently changed (e.g., increased), and/or the like. Personnel for the entity may define the criteria via a graphical user interface provided through the vendor risk management service. Accordingly, the criteria can facilitate carrying out actions for certain vendors found in the particular risk tier without necessarily having to carry out the actions for every vendor found in the particular risk tier.

In Operation 615, the risk mitigation module 140 identifies the one or more actions that are to be performed for the vendors. As previously discussed, personnel of the entity may define the one or more actions that are to be performed for vendors that are placed in the particular risk tier. For example, the personnel may define that an email is to be sent to certain risk management personnel of the entity that identifies the vendors placed in the particular risk tier. In addition, the personnel may define that an assessment is to be sent to each vendor that has been placed in the particular risk tier. Again, the defined actions to be performed may be stored in a data repository 170 found in the vendor risk management computing system 100 or other computing system such as an entity computing system 190 for the entity. Therefore, the risk mitigation module 140 may query the one or more actions from the data repository 170.

In Operation 620, the risk mitigation module 140 selects a vendor for the particular risk tier. The risk mitigation module 140 then performs the defined action(s) for the selected vendor in Operation 625. The risk mitigation module 140 then determines whether another vendor has been queried for the particular risk tier in Operation 630. If so, then the risk mitigation module 140 selects the next vendor and performs the one or more actions for the vendor accordingly.

Once the risk mitigation module 140 has processed all of the vendors for the particular risk tier, the risk mitigation module 140 determines whether one or more actions are to be carried out for vendors found in another risk tier in Operation 635. For example, the entity may wish to have a first set of actions carried out for vendors placed in the “High” tier and a second set of actions carried out for vendors placed in the “Very High” tier. If this is the case, then the risk mitigation module 140 returns to Operation 610 to select the next risk tier. The risk mitigation module 140 then performs the operations just discussed for the next risk tier. Once the risk mitigation module 140 has processed all the necessary risk tiers, the risk mitigation module 140 exits in Operation 640.

Custom Module

Turning now to FIG. 7 , additional details are provided regarding a custom module 150 for generating a customized risk rating of a vendor for an entity in accordance with various aspects of the disclosure. For instance, the flow diagram shown in FIG. 7 may correspond to operations carried out, for example, by computing hardware found in the vendor risk management computing system 100 as described herein, as the computing hardware executes the custom module 150.

As previously noted, an advantage provided in various aspects is that the vendor risk management service can be utilized to collect information (e.g., assessment datasets) on various vendors through a multitude of sources (e.g., different entities) and generate a risk rating for the individual vendors that may be more representative of the risk involved with integrating computer-implemented functionality with an entity computing system 190 than had a particular entity carried out the risk analysis independently. That is to say, the vendor risk management computing system 100 can be utilized in various aspects to crowdsource respective risk ratings for a plurality of different vendors (e.g., a large number of vendors). For example, over time, a large number of entities may each submit a respective assessment dataset for a particular vendor. The vendor risk management computing system 100 may then use each of these assessment datasets to revise (e.g., modify) the respective risk rating for the particular vendor.

As a specific example, the vendor risk management computing system 100 in various aspects may generate and maintain a respective baseline risk rating for each of a plurality of vendors based on, for example, any suitable combination of factors for the vendors. The vendor risk management computing system 100 may then modify the baseline risk rating for a vendor based on crowdsourced assessment datasets to generate a crowdsourced risk rating for the vendor. In generating the crowdsourced risk rating for a particular vendor, the vendor risk management computing system 100 may, for example, average the respective ratings (e.g., scores) associated with each assessment dataset and use that average (e.g., in conjunction with the baseline risk rating) in determining the crowdsourced risk rating for the vendor. In still other aspects, the vendor risk management computing system 100 may use this averaged rating as the vendor's baseline risk score. It should be understood that the crowdsourced risk rating for a particular vendor may be calculated using any suitable method (e.g., other than averaging). Accordingly, this can allow for a risk rating to be developed and maintained for the vendor that may be more comprehensive of the risk involved with using computer-implemented functionality provided by the particular vendor.

However, with that said, any one entity's integration of computer-implemented functionality provided by a vendor may have specific risk associated with the integration that may be different than the risk experienced by other entities. Therefore, an entity may wish to generate a customized risk rating for a particular vendor that may be more representative of the risk involved with the entity integrating certain computer-implemented functionality with an entity computing system 190 for the entity.

In various aspects, the vendor risk management computing system 100 provides a questionnaire that personnel of an entity can completed for a particular vendor that provides information on the entity's utilization and/or planned utilization of computer-implemented functionality provided by the vendor. For example, the vendor risk management computing system 100 may provide the questionnaire through one or more graphical user interfaces that can be accessed by the personnel of the entity through the vendor risk management service. The questionnaire may include, for example, one or more of the questions 800 listed in FIG. 8 . For instance, the questionnaire may ask the personnel whether the vendor performs a critical business function for the entity, whether the vendor connects to the entity's IT infrastructure, etc.

Therefore, the process 700 involves the custom module 150 receiving the answers to the questions (e.g., in a suitable dataset) in Operation 710. In Operation 715, the custom module 150 retrieves a risk rating for the vendor. For example, the custom module 150 may retrieve the baseline risk rating and/or crowdsourced risk rating for the vendor. The custom module 150 then uses the dataset of answers to modify the retrieved risk rating to generate a customized risk rating for the vendor in Operation 720. For example, the custom module 150 may generate the customized risk rating by averaging the retrieved risk rating for the vendor with a risk rating computed from the dataset of answers. Here, the custom module 150 may assign a numerical risk rating to a vendor based on the dataset of answers by assigning a particular value to each possible answer to each particular question within the questionnaire, and then totaling all of the respective values that correspond to the answers to those questions to determine the risk rating.

In particular aspects, the vendor risk management computing system 100 displays (e.g., at least initially display) a risk rating (e.g., a baseline risk rating and/or crowdsourced risk rating) for the vendor (e.g., Vendor X) to each entity of a set of entities accessing the vendor risk management service to view risk data for the particular vendor. In response to a first entity from the set of entities submitting a questionnaire for Vendor X, the custom module 150 may generate a first customized risk rating for Vendor X based on the completed questionnaire from the first entity. The custom module 150 may, for example, generate the first customized risk rating for Vendor X by averaging a baseline risk rating and/or crowdsourced risk rating with a risk rating computed from the completed questionnaire from the first entity. The vendor risk management computing system 100 may then display the first customized risk rating for Vendor X to the first entity, but continue to display the baseline risk rating and/or crowdsourced risk rating to the remaining entities in the set of entities. In various aspects, the vendor risk management computing system 100 maintains the customized risk rating for use only by the entity. In other aspects, the customized risk rating may be available for use by other entities in place of a previous version of a risk rating for the vendor.

Custom Modification Module

Turning now to FIG. 9 , additional details are provided regarding a custom modification module 160 for modifying a risk rating of a vendor for an entity in accordance with various aspects of the disclosure. For instance, the flow diagram shown in FIG. 9 may correspond to operations carried out, for example, by computing hardware found in the vendor risk management computing system 100 as described herein, as the computing hardware executes the custom modification module 160.

In various aspects, the vendor risk management computing system 100 allows an entity to define how a risk rating (e.g., baseline risk rating, crowdsourced risk rating, and/or customized risk rating) for a particular vendor is to be modified for use by the entity. For instance, the entity may specify to modify the risk rating for each of the entity's vendors in accordance with one or more third-party risk ratings (e.g., the Vendor's ISS Cyber Risk Score, or other third-party risk rating such as those that may assess risks related to the vendor's labor or environmental practices).

The vendor risk management computing system 100 may provide one or more graphical user interfaces that are accessible by personnel for entities through the vendor risk management service to specify how certain risk ratings are to be modified. The personnel may use the one or more graphical user interfaces in defining certain conditions that are to be satisfied to have a particular vendor's risk rating modified. In addition, the personnel may define the manner in which a vendor's risk rating is be modified if the conditions are met. Therefore, once personnel for a particular entity has defined the conditions and manner for modifying vendor risk ratings for the entity, the vendor risk management computing system 100 may invoke the custom modification module 160 to modify the risk ratings accordingly.

The process 900 involves the custom modification module 160 receiving the vendors for the entity in Operation 910. In Operation 915, the custom modification module 160 selects one of the vendors. The custom modification module 160 then determines whether the risk rating for the selected vendor is to be modified in Operation 920. For example, the personnel for the entity may have defined a condition that for any particular vendor of the entity, if the vendor's respective ISS Cyber Risk Score falls within a particular range, such as 300 to 500, the vendor's risk rating is to be modified in a certain manner such as raise or lower the vendor's risk rating by a certain amount and/or percentage. Therefore, if the custom modification module 160 determines the condition is satisfied for the selected vendor, then the custom modification module 160 retrieves the vendor's risk rating in Operation 925 and modifies the risk rating accordingly in Operation 930.

The custom modification module 160 determines whether another vendor is to be processed for the entity in Operation 935. If so, then the custom modification module 160 returns to Operation 915, selects the next vendor, and processes the vendor to modify a risk rating for the vendor accordingly. Although the custom modification module 160 is described in the context of allowing a particular entity to modify a risk rating for the entity's purposes, the custom modification module 160 may be used in some aspects to modify a risk rating, such as a baseline risk rating and/or crowdsourcing risk rating, for one or more vendors that is available for use to a plurality of different entities.

In particular aspects, once the custom modification module 160 has processed all of the vendors for the entity, the custom modification module 160 performs one or more actions that may be associated with the modified risk ratings in Operation 940. For example, the custom modification module 160 may invoke the tier module 130 and/or risk mitigation module 140 as previously discussed. In another example, the custom modification module 160 may cause a modified risk rating to be displayed for a particular vendor adjacent one or more other risk ratings associated with the vendor and/or any other relevant risk-related information for the vendor.

For example, FIG. 10 provides an example of a graphical user interface 1000 that may be provided through the vendor risk management service that displays various risk information for a particular vendor (e.g., Zentoso 1010). Here, the graphical user interface 1000 displays a graphic 1015 indicating that the computer-implemented functionality provided by the vendor is considered a low risk to the entity. The graphic 1015 can be based on placing the vendor in a particular tier (e.g. “Low” tier) for the entity. The vendor may have been placed in the particular tier based on one or more of a baseline risk rating, crowdsourcing risk rating, customized risk rating, or modified customized risk rating. In addition, the graphical user interface 1000 provides a third party risk rating, in this instance the vendor's ISS Cyber Risk Score 1020. Accordingly, the graphical user interface 1000 can be useful in helping personnel for the entity assess the risks associated with integrating computer-implemented functionality provided by the vendor into an entity computing system 190 for the entity in greater detail.

Example Technical Platforms

Aspects of the present disclosure may be implemented in various ways, including as computer program products that comprise articles of manufacture. Such computer program products may include one or more software components including, for example, software objects, methods, data structures, and/or the like. A software component may be coded in any of a variety of programming languages. An illustrative programming language may be a lower-level programming language such as an assembly language associated with a particular hardware architecture and/or operating system platform. A software component comprising assembly language instructions may require conversion into executable machine code by an assembler prior to execution by the hardware architecture and/or platform. Another example programming language may be a higher-level programming language that may be portable across multiple architectures. A software component comprising higher-level programming language instructions may require conversion to an intermediate representation by an interpreter or a compiler prior to execution.

Other examples of programming languages include, but are not limited to, a macro language, a shell or command language, a job control language, a script language, a database query, or search language, and/or a report writing language. In one or more example aspects, a software component comprising instructions in one of the foregoing examples of programming languages may be executed directly by an operating system or other software component without having to be first transformed into another form. A software component may be stored as a file or other data storage construct. Software components of a similar type or functionally related may be stored together such as, for example, in a particular directory, folder, or library. Software components may be static (e.g., pre-established, or fixed) or dynamic (e.g., created or modified at the time of execution).

A computer program product may include a non-transitory computer-readable storage medium storing applications, programs, program modules, scripts, source code, program code, object code, byte code, compiled code, interpreted code, machine code, executable instructions, and/or the like (also referred to herein as executable instructions, instructions for execution, computer program products, program code, and/or similar terms used herein interchangeably). Such non-transitory computer-readable storage media include all computer-readable media (including volatile and non-volatile media).

According to various aspects, a non-volatile computer-readable storage medium may include a floppy disk, flexible disk, hard disk, solid-state storage (SSS) (e.g., a solid-state drive (SSD), solid state card (SSC), solid state module (SSM)), enterprise flash drive, magnetic tape, or any other non-transitory magnetic medium, and/or the like. A non-volatile computer-readable storage medium may also include a punch card, paper tape, optical mark sheet (or any other physical medium with patterns of holes or other optically recognizable indicia), compact disc read only memory (CD-ROM), compact disc-rewritable (CD-RW), digital versatile disc (DVD), Blu-ray disc (BD), any other non-transitory optical medium, and/or the like. Such a non-volatile computer-readable storage medium may also include read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory (e.g., Serial, NAND, NOR, and/or the like), multimedia memory cards (MMC), secure digital (SD) memory cards, SmartMedia cards, CompactFlash (CF) cards, Memory Sticks, and/or the like. Further, a non-volatile computer-readable storage medium may also include conductive-bridging random access memory (CBRAM), phase-change random access memory (PRAM), ferroelectric random-access memory (FeRAM), non-volatile random-access memory (NVRAM), magnetoresistive random-access memory (MRAM), resistive random-access memory (RRAM), Silicon-Oxide-Nitride-Oxide-Silicon memory (SONOS), floating junction gate random access memory (FJG RAM), Millipede memory, racetrack memory, and/or the like.

According to various aspects, a volatile computer-readable storage medium may include random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), fast page mode dynamic random access memory (FPM DRAM), extended data-out dynamic random access memory (EDO DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), double data rate type two synchronous dynamic random access memory (DDR2 SDRAM), double data rate type three synchronous dynamic random access memory (DDR3 SDRAM), Rambus dynamic random access memory (RDRAM), Twin Transistor RAM (TTRAM), Thyristor RAM (T-RAM), Zero-capacitor (Z-RAM), Rambus in-line memory module (RIMM), dual in-line memory module (DIMM), single in-line memory module (SIMM), video random access memory (VRAM), cache memory (including various levels), flash memory, register memory, and/or the like. It will be appreciated that where various aspects are described to use a computer-readable storage medium, other types of computer-readable storage media may be substituted for or used in addition to the computer-readable storage media described above.

Various aspects of the present disclosure may also be implemented as methods, apparatuses, systems, computing devices, computing entities, and/or the like. As such, various aspects of the present disclosure may take the form of a data structure, apparatus, system, computing device, computing entity, and/or the like executing instructions stored on a computer-readable storage medium to perform certain steps or operations. Thus, various aspects of the present disclosure also may take the form of entirely hardware, entirely computer program product, and/or a combination of computer program product and hardware performing certain steps or operations.

Various aspects of the present disclosure are described below with reference to block diagrams and flowchart illustrations. Thus, each block of the block diagrams and flowchart illustrations may be implemented in the form of a computer program product, an entirely hardware aspect, a combination of hardware and computer program products, and/or apparatuses, systems, computing devices, computing entities, and/or the like carrying out instructions, operations, steps, and similar words used interchangeably (e.g., the executable instructions, instructions for execution, program code, and/or the like) on a computer-readable storage medium for execution.

For example, retrieval, loading, and execution of code may be performed sequentially such that one instruction is retrieved, loaded, and executed at a time. In some examples of aspects, retrieval, loading, and/or execution may be performed in parallel such that multiple instructions are retrieved, loaded, and/or executed together. Thus, such aspects can produce specially configured machines performing the steps or operations specified in the block diagrams and flowchart illustrations. Accordingly, the block diagrams and flowchart illustrations support various combinations of aspects for performing the specified instructions, operations, or steps.

Example System Architecture

FIG. 11 is a block diagram of a system architecture 1100 that can be used in providing the vendor risk management service and corresponding functionality according to various aspects of the disclosure as detailed herein. Components of the system architecture 1100 are configured according to various aspects to provide an entity with the vendor risk management service that facilitates and assists the entity in successfully recognizing, managing, and mitigating risks associated with integrating entity computing systems 190 of the entity with computer-implemented functionality (e.g., services, software applications, computing system capacity, and/or the like) provided through vendor computing systems 195. As may be understood from FIG. 11 , the system architecture 1100 in various aspects may include a vendor risk management computing system 100 that comprises one or more management servers 1110 and one or more data repositories 170.

The one or more management servers 1110 are used in supporting the vendor risk management service (e.g., an instance thereof) for an entity within the vendor risk management computing system 100. The one or more data repositories 170 may include, for example, a data repository for storing assessment datasets received for various vendors. In addition, the one or more data repositories 170 may include a data repository for storing specific data for various entities such as customized risk ratings on vendors for the various entities, as well as conditions and manners defined by the various entities and used in modifying risk ratings for vendors as described herein. Further, the management server(s) 1110 may execute a modification module 110, a dynamic assessment module 120, a tier module 130, a risk mitigation module 140, a custom module 150, and/or a custom modification module 160 as described herein. Further, in some aspects, the management server(s) 1110 may provide one or more graphical user interfaces through which personnel of the entities can access the vendor risk management service.

The one or more management servers 1110 may be in communication with one or more entity computing systems 190 for the entities, as well as one or more vendor computing systems 195 for the vendors, over one or more networks 175. Accordingly, the management server(s) 1110 may be in communication over the network(s) 140 with components residing on the entity computing systems 190 and/or vendor computing systems 195 to facilitate various functionality as described herein. To do so, the management server(s) 1110 may interface with the entity computing systems 190 and/or vendor computing systems 195 via one or more suitable application programming interfaces (APIs), direct connections, and/or the like. Although the management server(s) 110 and data repository(ies) 170 are shown as separate components, it should be understood that according to other aspects, these components 1110, 170 may comprise a single server and/or repository, a plurality of servers and/or repositories, one or more cloud-based servers and/or repositories, or any other suitable configuration.

Example Computing Hardware

FIG. 12 illustrates a diagrammatic representation of a computing hardware device 1200 that may be used in accordance with various aspects of the disclosure. For example, the hardware device 1200 may be computing hardware such as a management server 1110 as described in FIG. 11 . According to particular aspects, the hardware device 1200 may be connected (e.g., networked) to one or more other computing entities, storage devices, and/or the like via one or more networks such as, for example, a LAN, an intranet, an extranet, and/or the Internet. As noted above, the hardware device 1200 may operate in the capacity of a server and/or a client device in a client-server network environment, or as a peer computing device in a peer-to-peer (or distributed) network environment. According to various aspects, the hardware device 1200 may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a mobile device (smartphone), a web appliance, a server, a network router, a switch or bridge, or any other device capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that device. Further, while only a single hardware device 1200 is illustrated, the term “hardware device,” “computing hardware,” and/or the like shall also be taken to include any collection of computing entities that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.

A hardware device 1200 includes a processor 1202, a main memory 1204 (e.g., read-only memory (ROM), flash memory, dynamic random-access memory (DRAM) such as synchronous DRAM (SDRAM), Rambus DRAM (RDRAM), and/or the like), a static memory 1206 (e.g., flash memory, static random-access memory (SRAM), and/or the like), and a data storage device 1218, that communicate with each other via a bus 1232.

The processor 1202 may represent one or more general-purpose processing devices such as a microprocessor, a central processing unit, and/or the like. According to some aspects, the processor 1202 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, a processor implementing other instruction sets, processors implementing a combination of instruction sets, and/or the like. According to some aspects, the processor 1202 may be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, and/or the like. The processor 1202 can execute processing logic 1226 for performing various operations and/or steps described herein.

The hardware device 1200 may further include a network interface device 1208, as well as a video display unit 1210 (e.g., a liquid crystal display (LCD), a cathode ray tube (CRT), and/or the like), an alphanumeric input device 1212 (e.g., a keyboard), a cursor control device 1214 (e.g., a mouse, a trackpad), and/or a signal generation device 1216 (e.g., a speaker). The hardware device 1200 may further include a data storage device 1218. The data storage device 1218 may include a non-transitory computer-readable storage medium 1230 (also known as a non-transitory computer-readable storage medium or a non-transitory computer-readable medium) on which is stored one or more modules 1222 (e.g., sets of software instructions) embodying any one or more of the methodologies or functions described herein. For instance, according to particular aspects, the modules 1222 may include a modification module 110, a dynamic assessment module 120, a tier module 130, a risk mitigation module 140, a custom module 150, and/or a custom modification module 160 as described herein. The one or more modules 1222 may also reside, completely or at least partially, within main memory 1204 and/or within the processor 1202 during execution thereof by the hardware device 1200—main memory 1204 and processor 1202 also constituting computer-accessible storage media. The one or more modules 1222 may further be transmitted or received over a network 175 via the network interface device 1208.

While the computer-readable storage medium 1230 is shown to be a single medium, the terms “computer-readable storage medium” and “machine-accessible storage medium” should be understood to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable storage medium” should also be understood to include any medium that is capable of storing, encoding, and/or carrying a set of instructions for execution by the hardware device 1200 and that causes the hardware device 1200 to perform any one or more of the methodologies of the present disclosure. The term “computer-readable storage medium” should accordingly be understood to include, but not be limited to, solid-state memories, optical and magnetic media, and/or the like.

System Operation

The logical operations described herein may be implemented (1) as a sequence of computer implemented acts or one or more program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance and other requirements of the computing system. Accordingly, the logical operations described herein are referred to variously as states, operations, steps, structural devices, acts, or modules. These states, operations, steps, structural devices, acts, and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof. Greater or fewer operations may be performed than shown in the figures and described herein. These operations also may be performed in a different order than those described herein.

CONCLUSION

The disclosure provided herein entails detecting and addressing changes made to regulatory frameworks that affect (may affect) computing systems of various entities. However, those of ordinary skill in the art should appreciate that aspects of the disclosure may be used in detecting and addressing changes made to other regulatory instruments such as regulatory laws, regulations, standards, and/or the like that may also affect computing systems of various entities in handling certain types of data (e.g., target data).

While this specification contains many specific aspect details, these should not be construed as limitations on the scope of any invention or of what may be claimed, but as descriptions of features that may be specific to particular aspects of particular inventions. Certain features that are described in this specification in the context of separate aspects also may be implemented in combination in a single aspect. Conversely, various features that are described in the context of a single aspect also may be implemented in multiple aspects separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination may in some cases be excised from the combination, and the claimed combination may be a sub-combination or variation of a sub-combination.

Similarly, while operations are described in a particular order, this should not be understood as requiring that such operations be performed in the particular order described or in sequential order, or that all described operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various components in the various aspects described above should not be understood as requiring such separation in all aspects, and the described program components (e.g., modules) and systems may be integrated together in a single software product or packaged into multiple software products.

Many modifications and other aspects of the disclosure will come to mind to one skilled in the art to which this disclosure pertains having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the disclosure is not to be limited to the specific aspects disclosed and that modifications and other aspects are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for the purposes of limitation. 

What is claimed:
 1. A method comprising: providing, by computing hardware, a first question from a set of questions found in an electronic assessment for display on a user interface, wherein the user interface solicits a first answer to the first question, and the set of questions relates to computer-implemented functionality provided by a vendor; receiving, by the computing hardware and via the user interface, the first answer to the first question to provide a first question/answer pairing; mapping, by the computing hardware, the first question/answer pairing to an attribute related to the computing-implemented functionality; mapping, by the computing hardware, the attribute to a second question/answer pairing, wherein the second question/answer pairing: is related to the attribute, comprises a second question of the set of questions, and comprises a second answer provided to the second question; comparing, by the computing hardware, the first answer to the second answer to identify an inconsistency in the first answer with respect to the second answer; determining, by the computing hardware, to address the inconsistency; and responsive to determining to address the inconsistency, performing, by the computing hardware, an action to address the inconsistency, wherein the action comprises at least one of: (1) prompting, via the user interface, to provide at least one of supporting information or supporting documentation to address the inconsistency, (2) providing, via the user interface, a follow up question related to the inconsistency, or (3) requesting, via the user interface, the inconsistency in the first answer to be redressed.
 2. The method of claim 1, wherein determining to address the inconsistency comprises processing the inconsistency via a decision engine to generate a relevance of the inconsistency, the decision engine comprising a rules-based model configured to use a set of rules in determining a level of the inconsistency as a measure of the relevance of the inconsistency.
 3. The method of claim 1 further comprising determining, by the computing hardware, the action to perform by: processing at least one of the first question/answer pairing or the second question/answer pairing using a machine-learning model to generate a data representation having a set of predictions in which each prediction is associated with a particular action to take to address the inconsistency; and selecting, based on the set of predictions, the action to address the inconsistency.
 4. The method of claim 3, wherein the machine-learning model is trained using training data derived from responses to follow up requests previously provided for inconsistencies detected in past assessment question/answer pairings that comprises at least one of (1) whether the inconsistencies detected in the past assessment question/answer pairings were ignored, (2) whether related follow up actions for the inconsistencies detected in the past assessment question/answer pairings were ignored, (3) particular types of actions taken in response to the inconsistencies detected in the past assessment question/answer pairings, or (4) at least one of a framework or standard that is mapped to the past assessment question/answer pairings.
 5. The method of claim 1, wherein mapping the first question/answer pairing to the attribute related to the computing-implemented functionality and mapping the attribute to the second question/answer pairing is performed via a data structure that maps the first question/answer pairing and the second question/answer pairing to the attribute.
 6. The method of claim 1, wherein the first answer and the second answer are in a freeform text format and comparing the first answer to the second answer to identify the inconsistency in the first answer with respect to the second answer involves: performing a natural language processing technique on the first answer to generate a first embedded representation of the first answer, performing the natural language processing technique on the second answer to generate a second embedded representation of the second answer, and comprising the first embedded representation to the second embedded representation to identify the inconsistency.
 7. The method of claim 1 further comprising determining, by the computing hardware, the action to take to address the inconsistency based on at least one of a type of the attribute or a past response to a past inconsistency related to the attribute.
 8. A system comprising: a non-transitory computer-readable medium storing instructions; and a processing device communicatively coupled to the non-transitory computer-readable medium, wherein, the processing device is configured to execute the instructions and thereby perform operations comprising: providing a first question found in an electronic assessment for display on a user interface, wherein the user interface solicits a first answer to the first question, and the first question relates to computer-implemented functionality; receiving, via the user interface, the first answer to the first question to provide a first question/answer pairing; mapping the first question/answer pairing to a plurality of attributes related to the computing-implemented functionality; mapping the plurality of attributes to a second question/answer pairing, wherein the second question/answer pairing comprises a second question, and a second answer provided to the second question; comparing the first answer to the second answer to identify an inconsistency in the first answer with respect to the second answer; determining to address the inconsistency; and responsive to determining to address the inconsistency, performing an action to address the inconsistency, wherein the action comprises at least one of: (1) prompting, via the user interface, to provide at least one of supporting information or supporting documentation to address the inconsistency, (2) providing, via the user interface, a follow up question related to the inconsistency, or (3) requesting, via the user interface, the inconsistency in the first answer to be redressed.
 9. The system of claim 8, wherein determining to address the inconsistency comprises processing the inconsistency using a rules-based model configured to use a set of rules in determining a level of the inconsistency as a measure of a relevance of the inconsistency.
 10. The system of claim 8, wherein the operations further comprise determining the action to perform by: processing at least one of the first question/answer pairing or the second question/answer pairing using a machine-learning model to generate a data representation having a set of predictions in which each prediction is associated with a particular action to take to address the inconsistency; and selecting, based on the set of predictions, the action to address the inconsistency.
 11. The system of claim 10, wherein the machine-learning model is trained using training data derived from responses to follow up requests previously provided for inconsistencies detected in past assessment question/answer pairings that comprises at least one of (1) whether the inconsistencies detected in the past assessment question/answer pairings were ignored, (2) whether related follow up actions for the inconsistencies detected in the past assessment question/answer pairings were ignored, (3) particular types of actions taken in response to the inconsistencies detected in the past assessment question/answer pairings, or (4) at least one of a framework or standard that is mapped to the past assessment question/answer pairings.
 12. The system of claim 8, wherein mapping the first question/answer pairing to the plurality of attributes related to the computing-implemented functionality and mapping the plurality of attributes to the second question/answer pairing is performed via a data structure that maps the first question/answer pairing and the second question/answer pairing to the plurality of attributes.
 13. The system of claim 8, wherein the first answer and the second answer are in a freeform text format and comparing the first answer to the second answer to identify the inconsistency in the first answer with respect to the second answer involves: performing a natural language processing technique on the first answer to generate a first embedded representation of the first answer, performing the natural language processing technique on the second answer to generate a second embedded representation of the second answer, and comprising the first embedded representation to the second embedded representation to identify the inconsistency.
 14. The system of claim 8, wherein the operations further comprise determining the action to take to address the inconsistency based on at least one of (1) a number of the plurality of attributes, (2) a type of each of the plurality of attributes, or (3) one or more past responses to at least one of the first question/answer pairing being flagged or similar question/answering pairings being flagged that are mapped to attributes similar to the plurality of attributes.
 15. A non-transitory computer-readable medium having program code that is stored thereon, the program code executable by one or more processing devices for performing operations comprising: providing a first question found in an electronic assessment for display on a user interface, wherein the user interface solicits a first answer to the first question, and the first question relates to computer-implemented functionality; receiving, via the user interface, the first answer to the first question to provide a first question/answer pairing; mapping the first question/answer pairing to an attribute related to the computing-implemented functionality; mapping the attribute to a second question/answer pairing, wherein the second question/answer pairing comprises a second question, and a second answer provided to the second question; comparing the first answer to the second answer to identify an inconsistency in the first answer with respect to the second answer; determining to address the inconsistency; and responsive to determining to address the inconsistency, performing an action to address the inconsistency, wherein the action comprises at least one of: (1) prompting, via the user interface, to provide at least one of supporting information or supporting documentation to address the inconsistency, (2) providing, via the user interface, a follow up question related to the inconsistency, or (3) requesting, via the user interface, the inconsistency in the first answer to be redressed.
 16. The non-transitory computer-readable medium of claim 15, wherein determining to address the inconsistency comprises processing the inconsistency using a rules-based model configured to use a set of rules in determining a level of the inconsistency as a measure of a relevance of the inconsistency.
 17. The non-transitory computer-readable medium of claim 15, wherein the operations further comprise determining the action to perform by: processing at least one of the first question/answer pairing or the second question/answer pairing using a machine-learning model to generate a data representation having a set of predictions in which each prediction is associated with a particular action to take to address the inconsistency; and selecting, based on the set of predictions, the action to address the inconsistency.
 18. The non-transitory computer-readable medium of claim 15, wherein mapping the first question/answer pairing to the attribute related to the computing-implemented functionality and mapping the attribute to the second question/answer pairing is performed via a data structure that maps the first question/answer pairing and the second question/answer pairing to the attribute.
 19. The non-transitory computer-readable medium of claim 15, wherein the first answer and the second answer are in a freeform text format and comparing the first answer to the second answer to identify the inconsistency in the first answer with respect to the second answer involves: performing a natural language processing technique on the first answer to generate a first embedded representation of the first answer, performing the natural language processing technique on the second answer to generate a second embedded representation of the second answer, and comprising the first embedded representation to the second embedded representation to identify the inconsistency.
 20. The non-transitory computer-readable medium of claim 15, wherein the operations further comprise determining the action to take to address the inconsistency based on at least one of a type of the attribute or a past response to a past inconsistency related to the attribute. 